package net.hymnal.church;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.LinkedList;
import java.util.List;

import static net.hymnal.church.Constants.HYMNAL_TYPE_KEY;
import static net.hymnal.church.Constants.HYMN_NUMBER_KEY;
import static net.hymnal.church.Constants.SEARCH_LINE_KEY;

public class SearchActivity extends Activity implements OnItemClickListener {
    /**
     * Менеджер гимнов для поиска по гимнах
     * и заполнения списка
     */
    private HymnsManager hymnsManager = new HymnsManager(this);
    /**
     * Тип сборника гимнов, по которому происходит поиск
     */
    private HymnalType hymnalType;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setTheme(new Settings(this).getTheme());
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_search_result);

        //Достаём тип сборника гимнов, по которому нужно искать строку
        hymnalType = HymnalType.valueOf(getIntent().getStringExtra(HYMNAL_TYPE_KEY));
        //Достаём строку для поиска в гимнах
        String searchString = getIntent().getStringExtra(SEARCH_LINE_KEY);

        //Запускаем поиск по строке (ищет в другом потоке)
        List<String> list = hymnsManager.search(searchString);

        ListView searchResultListView = (ListView) findViewById(R.id.listResultSearch);
        //Устанавливаем слушатель на выбор элемента в списке
        searchResultListView.setOnItemClickListener(this);
        //Устанавливаем адаптер на список
        searchResultListView.setAdapter(
                new ArrayAdapter<String>(this, R.layout, list));
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent openHymnIntent = new Intent(this, HymnActivity.class);
        openHymnIntent.putExtra(HYMNAL_TYPE_KEY, hymnalType);
        openHymnIntent.putExtra(HYMN_NUMBER_KEY, (int) id);
        startActivity(openHymnIntent);
    }
}
